﻿using System;

using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;

namespace IphoneService
{

    public abstract class MikroSql
    {
        Queue<string> Filters;

        public string SrmMerkezSql { get { return "SELECT        som_kod, som_isim FROM            SORUMLULUK_MERKEZLERI"; } }


        public MikroSql()
        {
            Filters = new Queue<string>();
        }

        public string AyarSql
        {
            get
            {
                return "Select * from DEVICE_PARAMETERS";
            }
        }

        public virtual string AnaGrupSql
        {
            get
            {
                return string.Format("SELECT     san_RECno , san_kod, san_isim  FROM         STOK_ANA_GRUPLARI WITH (NOLOCK) ");
            }
        }

        /// <summary>
        /// Barkodlar için gerekli sql
        /// </summary>
        public virtual string BarkodSql
        {
            get
            {
                return string.Format("SELECT     BARKOD_TANIMLARI.bar_kodu, STOKLAR.sto_RECno, BARKOD_TANIMLARI.bar_birimpntr FROM         BARKOD_TANIMLARI  WITH (NOLOCK) INNER JOIN STOKLAR  WITH (NOLOCK) ON BARKOD_TANIMLARI.bar_stokkodu = STOKLAR.sto_kod WHERE     (BARKOD_TANIMLARI.bar_lastup_date >= CONVERT(DATETIME, '{0}', 102)) and (STOKLAR.sto_kod like '{1}%') ", this.Filter, "");
            }
        }

        public virtual string BirimSql
        {
            get { return string.Format("SELECT '1' AS kod, sto_RECno, sto_birim1_ad,sto_birim1_katsayi as katsayi FROM STOKLAR  WITH (NOLOCK)  WHERE (sto_birim1_ad <> '') and (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{0}', 102))  and (STOKLAR.sto_kod like '{1}%')  union all SELECT '2' AS kod, sto_RECno, sto_birim2_ad, (case when sto_birim2_katsayi > 0 then cast(sto_birim1_katsayi / sto_birim2_katsayi as decimal(16,2)) else sto_birim2_katsayi end)  as katsayi FROM  STOKLAR WITH (NOLOCK) WHERE (sto_birim2_ad <> '') and (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{0}', 102))  and (STOKLAR.sto_kod like '{1}%')  union all SELECT '3' AS kod, sto_RECno, sto_birim3_ad, (case when sto_birim3_katsayi > 0 then cast(sto_birim1_katsayi / sto_birim3_katsayi as decimal(16,2)) else sto_birim3_katsayi end) as katsayi FROM  STOKLAR WITH (NOLOCK) WHERE (sto_birim3_ad <> '') and (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{0}', 102))   and (STOKLAR.sto_kod like '{1}%') union all SELECT '4' AS kod, sto_RECno, sto_birim4_ad, (case when sto_birim4_katsayi > 0 then cast(sto_birim1_katsayi / sto_birim4_katsayi as decimal(16,2)) else sto_birim4_katsayi end) as katsayi FROM STOKLAR  WITH (NOLOCK) WHERE (sto_birim4_ad <> '') and (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{0}', 102)) and (STOKLAR.sto_kod like '{1}%')", this.Filter, ""); }
        }

        /// <summary>
        /// Cari Adresleri için gerekli sql
        /// </summary>
        public virtual string CariAdresSql
        {
            get
            {
                //return string.Format("SELECT     CARI_HESAPLAR.cari_RECno AS adr_RECno, CARI_HESAP_ADRESLERI.adr_adres_no,  CARI_HESAP_ADRESLERI.adr_cadde + '  ' + CARI_HESAP_ADRESLERI.adr_sokak + '  ' +  CARI_HESAP_ADRESLERI.adr_il + '/' +  CARI_HESAP_ADRESLERI.adr_ilce AS adres, CARI_HESAP_ADRESLERI.adr_tel_no1, CARI_HESAP_ADRESLERI.adr_tel_faxno,CARI_HESAP_ADRESLERI.adr_ozel_not  FROM         CARI_HESAP_ADRESLERI  WITH (NOLOCK) INNER JOIN CARI_HESAPLAR  WITH (NOLOCK) ON CARI_HESAP_ADRESLERI.adr_cari_kod = CARI_HESAPLAR.cari_kod WHERE     (CARI_HESAP_ADRESLERI.adr_lastup_date >= CONVERT(DATETIME, '{0}', 102))", this.Filter);
                return string.Format("SELECT     CARI_HESAPLAR.cari_RECno AS adr_RECno, CARI_HESAP_ADRESLERI.adr_adres_no,  CARI_HESAP_ADRESLERI.adr_cadde + '  ' + CARI_HESAP_ADRESLERI.adr_sokak + '  ' +  CARI_HESAP_ADRESLERI.adr_il + '/' +  CARI_HESAP_ADRESLERI.adr_ilce AS adres, CARI_HESAP_ADRESLERI.adr_tel_no1, CARI_HESAP_ADRESLERI.adr_tel_faxno,CARI_HESAP_ADRESLERI.adr_ozel_not  FROM         CARI_HESAP_ADRESLERI  WITH (NOLOCK) INNER JOIN CARI_HESAPLAR  WITH (NOLOCK) ON CARI_HESAP_ADRESLERI.adr_cari_kod = CARI_HESAPLAR.cari_kod WHERE     (CARI_HESAP_ADRESLERI.adr_lastup_date >= CONVERT(DATETIME, '{0}', 102))", this.Filter);
            }
        }

        /// <summary>
        /// Cari bilgiler için gerekli sql
        /// </summary>
        public virtual string CariSql
        {
            get
            {
                //return string.Format("SELECT     cari_RECno, cari_kod, cari_unvan1, cari_vdaire_adi, cari_vdaire_no, '0' AS isk1, '0' AS isk2, '0' AS isk3, '0' AS isk4, '0' AS isk5, dbo.fn_CariHesapAnaDovizBakiye('', 0, cari_kod, '', '', NULL, NULL, NULL, 0) AS bakiye, '0' AS anlik  FROM         CARI_HESAPLAR WHERE     (cari_lastup_date >= CONVERT(DATETIME, '{0}', 102)) or (cari_kod in (SELECT     cha_kod FROM         CARI_HESAP_HAREKETLERI WHERE     (cha_lastup_date >= CONVERT(DATETIME, '{0}', 102)) GROUP BY cha_kod))", this.Filter);
                return string.Format("SELECT     cari_RECno, cari_kod, cari_unvan1 + ' ' + cari_unvan2, cari_vdaire_adi, cari_vdaire_no, '0' AS isk1, '0' AS isk2, '0' AS isk3, '0' AS isk4, '0' AS isk5, dbo.fn_WinSatCariBakiye(cari_kod) AS bakiye, '0' AS anlik,cari_satis_fk as fiyatno,cari_satis_isk_kod,cast(0 as int) as cari_risk_limiti  FROM         CARI_HESAPLAR WITH (NOLOCK) WHERE     (cari_lastup_date >= CONVERT(DATETIME, '{0}', 102)) ", this.Filter);
            }
        }

        ///// <summary>
        ///// Müşteriye ait özel bir satış fiyatı varsa onu getirir ilk parametre depo no
        ///// </summary>
        //public virtual string CariFiyatSql
        //{
        //    get
        //    {
        //        return string.Format("SELECT     cast(STOKLAR.sto_RECno as varchar) + ';' +  cast(CARI_HESAPLAR.cari_RECno as varchar) + ';' +  cast(CAST(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, CARI_HESAPLAR.cari_satis_fk, {0}) as decimal(16,2)) as varchar) FROM CARI_HESAPLAR CROSS JOIN STOKLAR WHERE     (dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, CARI_HESAPLAR.cari_satis_fk, {0}) > 0) AND (CARI_HESAPLAR.cari_satis_fk > 1) AND (STOKLAR.sto_kod IN(SELECT     bar_stokkodu FROM BARKOD_TANIMLARI)) AND (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{1}', 102)) ", this.Filter, this.Filter);
        //    }
        //}

        /// <summary>
        /// Kampaylar için gerekli sql cümlesi
        /// </summary>
        public virtual string CariKampanyaSql
        {
            get
            {
                return "SELECT     ID, CUSTOMER_ID, PROMOTION_ID  FROM         CUSTOMER_PROMOTION";
            }
        }

        /// <summary>
        /// Depolar için gerekli sql cümlesi
        /// </summary>
        public virtual string DepoSql
        {
            get
            {
                return string.Format("SELECT     dep_RECno, dep_no, dep_adi  FROM DEPOLAR WITH (NOLOCK)", this.Filter);
            }
        }

        /// <summary>
        /// Günlük döviz kurları alınıyor
        /// </summary>
        public virtual string DovizSql
        {
            get
            {
                return "SELECT TOP 12  dov_no AS no,(CASE WHEN dov_no = 1 THEN 'USD' WHEN dov_no = 2 THEN 'EUR' WHEN dov_no = 3 THEN 'CAD' WHEN dov_no = 4 THEN 'DKK' WHEN dov_no = 5 THEN 'SEK'  WHEN dov_no = 6 THEN 'CHF' WHEN dov_no = 7 THEN 'NOK' WHEN dov_no = 8 THEN 'YPY' WHEN dov_no = 9 THEN 'SAR' WHEN dov_no = 10 THEN 'KWD' WHEN dov_no = 11 THEN 'AUD' WHEN dov_no = 12 THEN 'GBP' ELSE 'TL' END) AS dvz, dov_fiyat2 AS fiyat  FROM         MikroDB_V12.dbo.DOVIZ_KURLARI ORDER BY dov_tarih DESC,dov_no";
            }
        }

        /// <summary>
        /// Kampanyalar için gerekli sql cümlesi
        /// </summary>
        public virtual string KampanyaSql
        {
            get
            {
                return "SELECT     CODE, NAME, TYPE, DISCOUNT_RATE, DISCOUNT_TOTAL, LIMIT, AMOUNT, PROMOTION_AMOUNT  FROM         PROMOTION_HEADER";
            }
        }

        /// <summary>
        /// ilk filtre plasiyer sonraki hafta
        /// </summary>
        public virtual string RouteSql
        {
            get
            {
                return string.Format("SELECT     t1.VISIT_NO, t1.CUSTOMER_ID, t1.ADDRESS_ID, CAST(0 AS int) AS statu, CAST(0 AS int) AS bakiye, CAST(0 AS int) AS yenibakiye, t1.WEEK_NO, t1.DAY_NO FROM MERCHANT_ROUTE AS t1 INNER JOIN CARI_HESAPLAR AS t2 ON t1.CUSTOMER_ID = t2.cari_RECno INNER JOIN MERCHANT ON t1.MERCHANT_ID = MERCHANT.ID WHERE  (MERCHANT.CODE = N'{0}') ORDER BY t1.VISIT_NO ", this.Filter);
            }
        }

        /// <summary>
        /// Plasiyerleri yüklemek için gerekli sql cümlesi
        /// </summary>
        public virtual string SaticiSql
        {
            get
            {
                return "SELECT     MERCHANT.ID, MERCHANT.CODE, MERCHANT.NAME, VEHICLE.CODE AS arac FROM MERCHANT INNER JOIN  VEHICLE ON MERCHANT.ID = VEHICLE.MERCHANT_ID";
            }
        }

        /// <summary>
        /// Stoklar için gerekli sql cümleleri
        /// </summary>
        public virtual string StokSql
        {
            get
            {
                return string.Format("SELECT     STOKLAR.sto_RECno, STOKLAR.sto_kod, STOKLAR.sto_isim, dbo.fn_VergiYuzde(STOKLAR.sto_toptan_vergi), cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 1, {0}) as decimal(16,5)) AS fiyat,dbo.fn_DovizSembolu(dbo.fn_StokFiyatDovizCinsi(sto_kod,1,{0})) AS dvz, NULL AS uret,STOK_ANA_GRUPLARI.san_RECno AS anagrp, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 2, {0}) as decimal(16,5)) AS fiyat2, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 3, {0}) as decimal(16,5)) AS fiyat3, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 4, {0}) as decimal(16,5)) AS fiyat4, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 5, {0}) as decimal(16,5)) AS fiyat5, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 6, {0}) as decimal(16,5)) AS fiyat6, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 7, {0}) as decimal(16,5)) AS fiyat7, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 8, {0}) as decimal(16,5)) AS fiyat8, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 9, {0}) as decimal(16,5)) AS fiyat9, cast(dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 9, 1) as decimal(16,5)) AS fiyat10,STOKLAR.sto_KasaIskontoOrani,(SELECT TOP 1 sfiyat_iskontokod FROM  STOK_SATIS_FIYAT_LISTELERI  WITH (NOLOCK) WHERE     (sfiyat_deposirano = 0) AND (sfiyat_listesirano = 1) AND (sfiyat_stokkod = STOKLAR.sto_kod)) as iskonto_kod,'0' sto_Tevkifat_turu,STOKLAR.sto_otvuygulama,STOKLAR.sto_otvtutar FROM STOKLAR WITH (NOLOCK) LEFT OUTER JOIN STOK_ANA_GRUPLARI ON STOKLAR.sto_anagrup_kod = STOK_ANA_GRUPLARI.san_kod WHERE     (STOKLAR.sto_lastup_date >= CONVERT(DATETIME, '{1}', 102)) AND (STOKLAR.sto_kod IN(SELECT     bar_stokkodu FROM BARKOD_TANIMLARI WITH (NOLOCK))) and (STOKLAR.sto_kod like '{2}%')", 1, this.Filter, "%");
            }
        }

        /// <summary>
        /// terminalin ait olduğu depoda veya araçta bulunan stoklar
        /// </summary>
        public virtual string StokDepoMiktarSql
        {
            get
            {
                //TODO:Bu sql cümlesi şu şekile dönüşebilir belirtilen tarih aralığındaki stok hareketleri olan stokları geri döndür diye bu daha sağlıklı olacaktır ancak performans sıkıntısı oluşturması %100 ihtimal dir.
                return string.Format("SELECT     sto_RECno, cast(dbo.fn_DepodakiMiktar(sto_kod, {0}, '2900-01-01') as decimal(16,2)) AS miktar, dbo.fn_EldekiMiktar(sto_kod) AS toplam FROM STOKLAR  WITH (NOLOCK)  WHERE     (sto_lastup_date >= CONVERT(DATETIME, '{1}', 102)) AND (STOKLAR.sto_kod IN(SELECT     bar_stokkodu FROM BARKOD_TANIMLARI)) and (STOKLAR.sto_kod like '{2}%') ", 1, this.Filter, "");
            }
        }

        /// <summary>
        /// tüm depolarda elde olan stoklar
        /// </summary>
        public virtual string StokMiktarSql
        {
            get
            {
                return string.Format("SELECT     STOKLAR.sto_RECno, DEPOLAR.dep_RECno, CAST(dbo.fn_DepodakiMiktar(STOKLAR.sto_kod, DEPOLAR.dep_no, '2900-01-01') AS decimal(16, 2)) AS miktar FROM  STOKLAR  WITH (NOLOCK)  CROSS JOIN DEPOLAR  WITH (NOLOCK) WHERE     (STOKLAR.sto_kod IN (SELECT     bar_stokkodu FROM  BARKOD_TANIMLARI WITH (NOLOCK) ))  and (STOKLAR.sto_kod like '{0}%')", "");
            }
        }

        /// <summary>
        /// stok kampanyalarını getiren sql
        /// </summary>
        public virtual string StokKampanyaSql
        {
            get
            {
                return "SELECT     ID, PROMOTION_ID, PRODUCT_ID, PRM_PRODUCT_ID, CUSTOMER_ID  FROM         PRODUCT_PROMOTION";
            }
        }

        /// <summary>
        /// Terminal Ayarlarını Yüklemek için gereken sql
        /// </summary>
        /// <returns></returns>
        public virtual string TerminalAyarSql
        {
            get
            {
                return string.Format("SELECT     PARAMETER_CODE, PARAMETER_VALUE  FROM         DEVICE_PARAMETERS  WHERE     (DEVICE_ID = {0})", this.Filter);
            }
        }

        public virtual string Filter
        {
            get
            {
                if (Filters.Count > 0)
                    return Filters.Dequeue();
                else
                    return "";
            }
            set
            {
                if (string.IsNullOrEmpty(value))
                    Filter.Remove(0, Filter.Length);
                else
                    Filters.Enqueue(value);
            }
        }

        public virtual string FiyatKdvDahil
        {
            get
            {
                return string.Format("SELECT sfl_kdvdahil  FROM  STOK_SATIS_FIYAT_LISTE_TANIMLARI  WHERE  (sfl_sirano = {0})", this.Filter);
            }
        }

        public string VergiOranlari
        {
            get
            {
                return "select dbo.fn_VergiIsim(1) as isim,dbo.fn_VergiYuzde(1) as oran union all select dbo.fn_VergiIsim(2),dbo.fn_VergiYuzde(2) union all select dbo.fn_VergiIsim(3),dbo.fn_VergiYuzde(3) union all select dbo.fn_VergiIsim(4),dbo.fn_VergiYuzde(4)";
            }
        }

        public string SatisSartiListesi
        {
            get
            {
                //return string.Format("SELECT     STOKLAR.sto_RECno,CARI_HESAPLAR.cari_RECno,dbo.fn_winsat_satis_sarti_fiyati(SATIS_SARTLARI.sat_cari_kod,SATIS_SARTLARI.sat_stok_kod,{0},'{1}') FROM SATIS_SARTLARI  WITH (NOLOCK) INNER JOIN STOKLAR  WITH (NOLOCK) ON SATIS_SARTLARI.sat_stok_kod = STOKLAR.sto_kod INNER JOIN CARI_HESAPLAR  WITH (NOLOCK) ON SATIS_SARTLARI.sat_cari_kod = CARI_HESAPLAR.cari_kod GROUP BY CARI_HESAPLAR.cari_RECno, STOKLAR.sto_RECno,SATIS_SARTLARI.sat_cari_kod,SATIS_SARTLARI.sat_stok_kod", this.Filter, this.Filter);
                //return string.Format("SELECT     STOKLAR.sto_RECno, CARI_HESAPLAR.cari_RECno, dbo.fn_winsat_satis_sarti_fiyati(CARI_HESAPLAR.cari_kod, STOKLAR.sto_kod, {0}, '{1}') FROM STOKLAR WITH (NOLOCK) CROSS JOIN CARI_HESAPLAR WITH (NOLOCK) GROUP BY CARI_HESAPLAR.cari_RECno, STOKLAR.sto_RECno,CARI_HESAPLAR.cari_kod, STOKLAR.sto_kod", this.Filter, this.Filter);
                return "exec dbo.SatisSartlariHazirla";
            }
        }

        public string IskontoMatrisleri
        {
            get { return "SELECT      isk_RECno,isk_stok_kod, isk_cari_kod, isk_isk1_yuzde, isk_isk2_yuzde, isk_isk3_yuzde, isk_isk4_yuzde, isk_isk5_yuzde FROM         STOK_CARI_ISKONTO_TANIMLARI WITH (NOLOCK) "; }
        }

        public string BankaSql
        {
            get { return "SELECT     ban_RECno, ban_kod, ban_ismi  FROM         BANKALAR"; }
        }

        public string CariFoySql
        {
            get
            {
                DateTime tarih = DateTime.Now.AddMonths(-1);
                return string.Format("select * from dbo.fn_WinSat_CariFoy('{0}{1}{2}','{3}{4}{5}')", tarih.Year, tarih.Month.ToString("00"), tarih.Day.ToString("00"), DateTime.Now.Year, DateTime.Now.Month.ToString("00"), DateTime.Now.Day.ToString("00"));
            }
        }

        public void CariEkle(string Value, string ConStr)
        {
            //SELECT     cari_RECno, cari_kod, cari_unvan1 + ' ' + cari_unvan2, cari_vdaire_adi, cari_vdaire_no, '0' AS isk1, '0' AS isk2, '0' AS isk3, 
            //'0' AS isk4, '0' AS isk5, dbo.fn_WinSatCariBakiye(cari_kod) AS bakiye, '0' AS anlik,cari_satis_fk as fiyatno,cari_satis_isk_kod,
            //cast(0 as int) as cari_risk_limiti  FROM         CARI_HESAPLAR WITH (NOLOCK) WHERE     (cari_lastup_date >= CONVERT(DATETIME, '{0}', 102))
            string[] CariValue = Value.Split('#')[0].Split(';');
            string[] AdresValue = Value.Split('#')[1].Split(';');
            using (SqlConnection cn = new SqlConnection(ConStr))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("Insert into PW_001_CARI (cari_fiyat_id,cari_indirim_oran,cari_tipi,cari_kilitli,cari_create_date,cari_update_date,cari_kod, cari_unvan1, cari_unvan2, cari_vdaire_adi, cari_vdaire_no) Values(@Fiyat,@Indirim,@Tip,@Kilit,@Create,@Update,@Kod,@Ad,@VergiDaire,@VergiNo)", cn))
                {
                    cmd.Parameters.Add(new SqlParameter("@Fiyat", 0));
                    cmd.Parameters.Add(new SqlParameter("@Indirim", 0));
                    cmd.Parameters.Add(new SqlParameter("@Tip", SqlDbType.SmallInt)).Value = 1;
                    cmd.Parameters.Add(new SqlParameter("@Kilit", SqlDbType.Bit)).Value = false;
                    cmd.Parameters.Add(new SqlParameter("@Create", SqlDbType.DateTime)).Value = DateTime.Now;
                    cmd.Parameters.Add(new SqlParameter("@Update", SqlDbType.DateTime)).Value = DateTime.Now;
                    cmd.Parameters.Add(new SqlParameter("@Kod", CariValue[0]));
                    cmd.Parameters.Add(new SqlParameter("@Ad", CariValue[1]));
                    cmd.Parameters.Add(new SqlParameter("@VergiDaire", CariValue[2]));
                    cmd.Parameters.Add(new SqlParameter("@VergiNo", CariValue[3]));
                    cmd.ExecuteNonQuery();
                }
                using (SqlCommand cmd = new SqlCommand("Insert into PW_001_CADRES (adr_kod,adr_cari_id,adr_adres, adr_tel1, adr_fax) Values(@Kod,@CariID,@Adres,@Tel,@Fax)", cn))
                {
                    cmd.Parameters.Add(new SqlParameter("@Kod", 1));
                    cmd.Parameters.Add(new SqlParameter("@CariID", int.Parse(AdresValue[3])));
                    cmd.Parameters.Add(new SqlParameter("@Adres", AdresValue[0]));
                    cmd.Parameters.Add(new SqlParameter("@Tel", AdresValue[1]));
                    cmd.Parameters.Add(new SqlParameter("@Fax", AdresValue[2]));
                    cmd.ExecuteNonQuery();
                }
                cn.Close();
            }
        }


        public void StokEkle(string Value, string ConStr)
        {

        }
    }

    public class MikroV12Sql : MikroSql
    {
        Queue<string> Filters;
        public MikroV12Sql()
        {
            Filters = new Queue<string>();
        }
        public override string DovizSql
        {
            get
            {
                return base.DovizSql;
            }
        }
    }

    public class MikroV14Sql : MikroSql
    {
        Queue<string> Filters;
        public MikroV14Sql()
        {
            Filters = new Queue<string>();
        }
        public override string DovizSql
        {
            get
            {
                return "SELECT TOP 12  dov_no AS no,(CASE WHEN dov_no = 1 THEN 'USD' WHEN dov_no = 2 THEN 'EUR' WHEN dov_no = 3 THEN 'CAD' WHEN dov_no = 4 THEN 'DKK' WHEN dov_no = 5 THEN 'SEK'  WHEN dov_no = 6 THEN 'CHF' WHEN dov_no = 7 THEN 'NOK' WHEN dov_no = 8 THEN 'YPY' WHEN dov_no = 9 THEN 'SAR' WHEN dov_no = 10 THEN 'KWD' WHEN dov_no = 11 THEN 'AUD' WHEN dov_no = 12 THEN 'GBP' ELSE 'TL' END) AS dvz, dov_fiyat2 AS fiyat  FROM         MikroDB_V14.dbo.DOVIZ_KURLARI ORDER BY dov_tarih DESC,dov_no";
            }
        }

        public override string CariSql
        {
            get
            {
                return string.Format("SELECT     cari_RECno, cari_kod, cari_unvan1 + ' ' + cari_unvan2, cari_vdaire_adi, cari_vdaire_no, '0' AS isk1, '0' AS isk2, '0' AS isk3, '0' AS isk4, '0' AS isk5, dbo.fn_WinSatCariBakiye(cari_kod) AS bakiye, '0' AS anlik,cari_satis_fk as fiyatno,cari_satis_isk_kod,(select sum(ct_tutari) from CARI_HESAP_TEMINATLARI where ct_carikodu=CARI_HESAPLAR.cari_kod and (dbo.fn_limittipi_kredimi(ct_icerigi)=1)) as cari_risk_limiti  FROM         CARI_HESAPLAR WITH (NOLOCK) WHERE     (cari_lastup_date >= CONVERT(DATETIME, '{0}', 102)) ", this.Filter);
            }
        }
    }
}
